<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:c="http://java.sun.com/jsp/jstl/core">
    <ui:composition template="/faces/templates/master.xhtml">
        <ui:define name="content">
            <h:outputStylesheet library="css" name="persdaten.css"/>
            <p:tabView id="tabv_sl" styleClass="tabView" dynamic="true" cache="false" activeIndex="#{streckenlisteBean.tabIndex}">
                <p:ajax event="tabChange" listener="#{streckenlisteBean.onTabChange}"/>
                <p:tab id="tab_overview" title="Übersicht">
                    <p:fieldset legend="Allgemein">
                        <p:panelGrid columns="2" styleClass="noborder">
                            <h:outputText value="Anzahl Einträge:"/>
                            <h:outputText value="#{navigationBean.selectedStreckenliste.slAEntries.size() + navigationBean.selectedStreckenliste.slBEntries.size()}"/>
                            <h:outputText value="davon in Streckenliste A:"/>
                            <h:outputText value="#{navigationBean.selectedStreckenliste.slAEntries.size()}"/>
                            <h:outputText value="davon in Streckenliste B:"/>
                            <h:outputText value="#{navigationBean.selectedStreckenliste.slBEntries.size()}"/>
                        </p:panelGrid>
                    </p:fieldset>
                    <p:separator/>
                    <p:fieldset legend="Zusammenfassung Streckenliste A">
                        <p:dataTable var="sla" value="#{streckenlisteBean.holeZusammnefassung()}" sortBy="#{sla.wildart.wildtyp.nameWT}">
                            <p:column headerText="Wildtyp" style="width: 150px">
                                #{sla.wildart.wildtyp.nameWT}
                            </p:column>
                            <p:column headerText="Wildart" style="width: 150px">
                                #{sla.wildart.nameWA}
                            </p:column>
                            <p:column headerText="Geschossen" style="text-align: center">
                                #{streckenlisteBean.cntSLAGeschossen(sla)}
                            </p:column>
                            <p:column headerText="Verendet" style="text-align: center">
                                #{streckenlisteBean.cntSLAVerendet(sla)}
                            </p:column>
                            <p:column headerText="Gesamt" style="text-align: center">
                                #{streckenlisteBean.cntSLAGeschossen(sla) + streckenlisteBean.cntSLAVerendet(sla)}
                            </p:column>
                        </p:dataTable>
                    </p:fieldset>
                    <p:separator/>
                    <p:fieldset id="fs_abschpl" legend="Abschussplan">
                        <h:form>
                            <p:dataTable var="abschpl" value="#{streckenlisteBean.holeAbschussplanEintrag()}"
                                         rowKey="#{abschpl.id}" 
                                         selectionMode="single" selection="#{streckenlisteBean.selectedAbschussplan}"
                                         emptyMessage="Keine Abschusspläne vorhanden">
                                <p:ajax event="rowSelect" listener="#{streckenlisteBean.onRowSelect}" oncomplete="dlgAschpl.show()" update=":tabv_sl:fs_abschpl, :dlg_Abschpl"/>
                                <p:ajax event="rowUnselect" listener="#{streckenlisteBean.onRowUnselect}" update=":tabv_sl:fs_abschpl"/>
                                <p:column headerText="Jahr" style="width: 150px">
                                    #{abschpl.jahr}
                                </p:column>
                                <p:column headerText="Wildtyp" style="width: 150px">
                                    #{abschpl.wildtyp.nameWT}
                                </p:column>
                                <p:column headerText="soll"  style="text-align: center">
                                    #{abschpl.calcGesamtZahl() + abschpl.calcRest()} </p:column>
                                <p:column headerText="ist" style="text-align: center">
                                    #{streckenlisteBean.cntIstAbschPl(abschpl)}
                                </p:column>
                                <p:column headerText="%" style="text-align: center">
                                    #{streckenlisteBean.sollIstAbschpl(abschpl)}
                                </p:column>
                            </p:dataTable>
                        </h:form>
                    </p:fieldset>
                </p:tab>
                <p:tab id="tab_sla" title="Streckenliste A">
                    <p:dataTable id="tbl_slashow" styleClass="sl_table" var="slaeintrag" value="#{streckenlisteBean.holeListeA()}" sortBy="#{slaeintrag.abschTag}">
                        <p:column headerText="Datum" style="width: 80px">
                            <h:outputText value="#{slaeintrag.abschTag}">
                                <f:convertDateTime pattern="dd.MM.yyyy" timeZone="GMT+2"/>
                            </h:outputText>
                        </p:column>
                        <p:column headerText="Wildtyp" style="width: 150px">
                            <h:outputText value="#{slaeintrag.wildart.wildtyp.nameWT}"/>
                        </p:column>
                        <p:column headerText="Wildart" style="width: 150px">
                            <h:outputText value="#{slaeintrag.wildart.nameWA}"/>
                        </p:column>
                        <p:column headerText="Gewicht" style="width: 80px; text-align: center">
                            <h:outputText value="#{slaeintrag.gewicht}"/>
                        </p:column>
                        <p:column headerText="Bemerkung">
                            <h:outputText value="#{slaeintrag.bemerkung}"/>
                        </p:column>
                        <p:column rendered="#{!navigationBean.selectedStreckenliste.istAbgeschlossen}">
                            <p:commandButton icon="ui-icon-trash" title="Löschen" actionListener="#{streckenlisteBean.loescheSLA}" update="tbl_slashow">
                                <f:attribute name="sla" value="#{slaeintrag}"/>
                            </p:commandButton>
                        </p:column>
                    </p:dataTable>
                </p:tab>
                <p:tab id="tab_slb" title="Streckenliste B">
                    <h:outputText value="Schwarzwild :"/>
                    <p:dataTable id="tbl_slabshow" var="slbeintrag" value="#{streckenlisteBean.holeListeAB()}" style="text-align: center">
                        <p:column headerText="Wildtyp" style="text-align: left">
                            <h:outputText value="#{slbeintrag.wildart.nameWA}"/>
                        </p:column>
                        <p:column headerText="erlegt/gefangen">
                            <h:outputText value="#{slbeintrag.erlegt}"/>
                        </p:column>
                        <p:column headerText="verendet">
                            <h:outputText value="#{slbeintrag.verendet}"/>
                        </p:column>
                        <p:column headerText="Unfall">
                            <h:outputText value="#{slbeintrag.unfall}"/>
                        </p:column>
                        <p:column headerText="Bemerkung" style="text-align: left">
                            <h:outputText value="#{slbeintrag.bemerkung}"/>
                        </p:column>
                    </p:dataTable>
                    <p:separator/>
                    <p:dataTable id="tbl_slbshow" var="slbeintrag" sortBy="#{slbeintrag.wildtyp.sort}" value="#{streckenlisteBean.holeListeB()}">
                        <p:column headerText="Wildtyp">
                            <h:outputText value="#{slbeintrag.wildtyp.nameWT}"/>
                        </p:column>
                        <p:column headerText="erlegt/gefangen">
                            <h:outputText value="#{slbeintrag.erlegt}"/>
                        </p:column>
                        <p:column headerText="verendet">
                            <h:outputText value="#{slbeintrag.verendet}"/>
                        </p:column>
                        <p:column headerText="Unfall">
                            <h:outputText value="#{slbeintrag.unfall}"/>
                        </p:column>
                        <p:column headerText="Bemerkung">
                            <h:outputText value="#{slbeintrag.bemerkung}"/>
                        </p:column>
                    </p:dataTable>
                </p:tab>
                <p:tab id="tab_edit" title="Hinzufügen" rendered="#{!navigationBean.selectedStreckenliste.istAbgeschlossen}">
                    <h:form id="frm_sl">
                        <p:messages binding="#{streckenlisteBean.msg}" id="msg_wtv" globalOnly="true"/>
                        <p:panelGrid id="tbl_sle" columns="3" styleClass="noborder">
                            <p:outputLabel id="lbl_wt" for="som_wt" value="Wildtyp"/>
                            <p:selectOneMenu id="som_wt" value="#{streckenlisteBean.wt}" converter="#{wildtypConverter}" filter="true" filterMatchMode="startsWith" style="width:250px" required="true" requiredMessage="Bitte geben sie den Wildtyp an">
                                <f:selectItem itemLabel="Bitte Wählen" itemValue=""/>
                                <f:selectItems var="wildtyp" value="#{streckenlisteBean.holeWildtyp()}" itemLabel="#{wildtyp.nameWT}" itemValue="#{wildtyp}"/>
                                <p:ajax update="tbl_sle, msg_wtv" listener="#{streckenlisteBean.prüfeWA()}" event="change"/>
                            </p:selectOneMenu>
                            <p:message for="som_wt" showDetail="true"/>
                            <p:outputLabel id="lbl_wa" for="som_wa" value="Wildart" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:selectOneMenu id="som_wa" value="#{streckenlisteBean.wa}" converter="#{wildartConverter}" rendered="#{streckenlisteBean.slAEintragRendered()}" style="width:250px" required="true" requiredMessage="Bitte geben sie die Wildart an">
                                <f:selectItem itemLabel="Bitte Wählen" itemValue=""/>
                                <f:selectItems var="wildart" value="#{streckenlisteBean.holeWildart()}" itemLabel="#{wildart.nameWA}" itemValue="#{wildart}"/>
                            </p:selectOneMenu>
                            <p:message for="som_wa" showDetail="true" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:outputLabel id="lbl_tag" for="cal_tag" value="Tag des Abschuß/Auffund" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:calendar binding="#{streckenlisteBean.cal}" pattern="dd.MM.yyyy" id="cal_tag" value="#{streckenlisteBean.tag}" rendered="#{streckenlisteBean.slAEintragRendered()}" style="width:250px" required="true" requiredMessage="Bitte geben sie denn Tag des Abschuß/ des Auffund / des Unfalls an">
                                <f:validator validatorId="pastDateValidator"/>
                            </p:calendar>
                            <p:message for="cal_tag" showDetail="true" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:outputLabel id="lbl_anzahlErlegt" for="spn_anzahlErlegt" value="Anzahl" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:spinner id="spn_anzahlErlegt" value="#{streckenlisteBean.anzahlErlegt}" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:message for="spn_anzahlErlegt" showDetail="true" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:outputLabel id="lbl_anzahlVerendet" for="spn_anzahlVerendet" value="Anzahl" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:spinner id="spn_anzahlVerendet" value="#{streckenlisteBean.anzahlVerendet}" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:message for="spn_anzahlVerendet" showDetail="true" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:outputLabel id="lbl_anzahlUnfall" for="spn_anzahlUnfall" value="Anzahl" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:spinner id="spn_anzahlUnfall" value="#{streckenlisteBean.anzahlUnfall}" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:message for="spn_anzahlUnfall" showDetail="true" rendered="#{!streckenlisteBean.slAEintragRendered()}"/>
                            <p:outputLabel id="lbl_gewicht" for="spn_gewicht" value="Gesamtgewicht" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:spinner id="spn_gewicht" value="#{streckenlisteBean.gewicht}" stepFactor="0.5" rendered="#{streckenlisteBean.slAEintragRendered()}" required="true" requiredMessage="Bitte geben sie das Gewicht an"/>
                            <p:message for="spn_gewicht" showDetail="true" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:outputLabel id="lbl_todesart" for="sor_todesart" value="Todesart" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:selectOneRadio id="sor_todesart" value="#{streckenlisteBean.auffundart}" rendered="#{streckenlisteBean.slAEintragRendered()}" layout="pageDirection" required="true" requiredMessage="Bitte geben sie die Todesart an">
                                <f:selectItem itemLabel="erledigt/gefangen" itemValue="ERLEGT"/>
                                <f:selectItem itemLabel="verendet gefunden" itemValue="VERENDET"/>
                                <f:selectItem itemLabel="durch Verkehrsunfall" itemValue="UNFALL"/>
                            </p:selectOneRadio>
                            <p:message for="sor_todesart" showDetail="true" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:outputLabel id="lbl_slabem" for="txt_slabem" value="Bemerkung" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:inputText id="txt_slabem" value="#{streckenlisteBean.bemerkung}" rendered="#{streckenlisteBean.slAEintragRendered()}" style="width:250px"/>
                            <p:message for="txt_slabem" showDetail="true" rendered="#{streckenlisteBean.slAEintragRendered()}"/>
                            <p:outputLabel id="lbl_slbbem" for="txt_slbbem" value="Bemerkung" rendered="#{streckenlisteBean.slBEintragRendered()}"/>
                            <p:inputText id="txt_slbbem" value="#{streckenlisteBean.bemerkung}" rendered="#{streckenlisteBean.slBEintragRendered()}" style="width:250px"/>
                            <p:message for="txt_slbbem" showDetail="true" rendered="#{streckenlisteBean.slBEintragRendered()}"/>
                        </p:panelGrid>
                        <p:separator/>
                        <p:commandButton id="btn_speichern" value="Speichern" actionListener="#{streckenlisteBean.speichern}" update=":tabv_sl" process="frm_sl">
                            <p:resetInput target="tbl_sle"/>
                        </p:commandButton>
                        <p:commandButton id="btn_abbrechen" value="Abbrechen" immediate="true" action="#{streckenlisteBean.cancel()}" ajax="false"/>
                    </h:form>
                </p:tab>
                <p:tab id="tab_close" title="Abschluss" rendered="#{!navigationBean.selectedStreckenliste.istAbgeschlossen}">
                    <h:outputText value="Hier können sie die Streckenliste abschließen."/>
                    <br/>
                    <h:outputText value="Bitte prüfen sie die Streckenliste auf Vollständigkeit."/>
                    <br/>
                    <h:outputText value="Eine abgeschlossene Streckenliste kann nicht mehr bearbeitet werden"/>
                    <p:separator/>
                    <h:form>
                        <p:commandButton id="btn_abschl" value="Streckenliste abschließen" oncomplete="dlgAbschl.show()"/>
                        <p:confirmDialog id="dlg_abschl" widgetVar="dlgAbschl" header="Sind sie sicher?" severity="alert" 
                                         message="Sind sie sich sicher, dass sie die Streckenliste abschließen wollen?">
                            <p:commandButton value="Ja" action="#{streckenlisteBean.streckenlisteAbschliessen()}" immediate="true" ajax="false"/>
                            <p:commandButton value="Nein" action="/faces/user/streckenliste.xhtml?faces-redirect=true" immediate="true" ajax="false"/>
                        </p:confirmDialog>
                    </h:form>
                </p:tab>
            </p:tabView>
            <p:dialog header="Abschussplan" id="dlg_Abschpl" widgetVar="dlgAschpl" modal="true" dynamic="true">
                <p:panel id="pnl">
                    <p:dataTable var="eintrag" value="#{streckenlisteBean.holeAbschPlEintragListe()}">
                        <p:column headerText="Wildart" style="width: 200px">
                            #{eintrag.wildart.nameWA}
                        </p:column>
                        <p:column headerText="soll" style="width: 50px; text-align: center">
                            #{eintrag.calcAnzahlahl()}
                            <h:outputText id="txt_mod2" value=" (#{eintrag.calcRest()})" rendered="#{eintrag.calcRest() != 0}"/>
                            <p:tooltip for="txt_mod2" value="Anzahl der Tiere, die zusätlich innerhalb des Abschussplanzeitraums geschossen werden müssen"/>
                        </p:column>
                        <p:column headerText="ist" style="width: 50px; text-align: center">
                            #{streckenlisteBean.cntIstAbschplEintrag(eintrag)}
                        </p:column>
                        <p:column headerText="%" style="width: 50px; text-align: center">
                            #{streckenlisteBean.sollIstAbschplEintrag(eintrag)}
                        </p:column>
                    </p:dataTable>
                </p:panel>
            </p:dialog>
        </ui:define>
    </ui:composition>
</html>